/**
 * 为Count组件服务的Reducer
 * 1. Reducer的本质就是一个函数
 * 2. Reducer函数会接到两个参数，分别为之前的状态（prevState）和动作对象（action）
 */
import { INCREMENT, DECREMENT } from "../constant";

const initState = 0;
export default function countReducer(prevState, action) {
    // console.log("countReducer:", prevState, action);

    const { type, data } = action;

    switch (type) {
        case INCREMENT:
            return prevState + data;
        case DECREMENT:
            return prevState - data;
        default:
            // 初始化时，传递的prevState为undefined，此时返回initState
            if (prevState === undefined) {
                return initState;
            }
            // 为保证combineReducers()函数合并后的reducer正确，必须返回prevState
            return prevState;
    }
}
